﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BLL;
using Entities;
using System.Text.RegularExpressions;

namespace QLTB_CTK34
{
	public partial class FrmQuanLiThongBaoLoiThietBi : Form
	{
		public FrmQuanLiThongBaoLoiThietBi()
		{
			InitializeComponent();
			dgvDSLoiTB.AutoGenerateColumns = false;
		}

		/// <summary>
		/// Hàm load csdl
		/// </summary>
		void LoadData()
		{
			dgvDSLoiTB.DataSource = QLTBLoiThietBi.GetAll();
			for (int i = 0; i < dgvDSLoiTB.Rows.Count; i++)
			{
				ThietBi tb = QLThietBi.FindByID(dgvDSLoiTB.Rows[i].Cells["MaTB"].Value.ToString());
				dgvDSLoiTB.Rows[i].Cells["TinhTrangTB"].Value = tb.TinhTrang;
			}
		}

		/// <summary>
		/// Làm mới csdl trong datagridview
		/// </summary>
		private void tsbtnRefresh_Click(object sender, EventArgs e)
		{
			LoadData();
		}

		/// <summary>
		/// Thoát form thông báo lỗi thiết bị
		/// </summary>
		private void tsbtnThoat_Click(object sender, EventArgs e)
		{
			Close();
		}

		/// <summary>
		/// Khi click vào thêm lỗi thiết bị, form thêm sẽ được hiển thị
		/// </summary>
		private void tsbtnThemLoiTB_Click(object sender, EventArgs e)
		{
			FrmGuiLoiTB ltb = new FrmGuiLoiTB();
            if (ltb.ShowDialog() == DialogResult.OK)
            {
                LoadData();
                Generic.SelectDataGridviewRowTheoMa(dgvDSLoiTB, "MaLoiTB", ltb.tbltb.MaLoiTB);
            }
		}

		/// <summary>
		/// Khi click vào button xóa lỗi thiết bị, lỗi được chọn sẽ bị xóa và tự làm mới danh sách
		/// </summary>
		private void tsbtnXoaLoiTB_Click(object sender, EventArgs e)
		{

            for (int i = dgvDSLoiTB.SelectedRows.Count - 1; i >= 0; i--)
                QLTBLoiThietBi.DeleteByID(int.Parse(dgvDSLoiTB.SelectedRows[i].Cells["MaLoiTB"].Value.ToString()));
            LoadData();
			QLNhatKy.ThemNhatKy("Xóa lỗi thiết bị");
		}

		/// <summary>
		/// Khi click vào button cập nhật lỗi thiết bị, form cập nhật sẽ được hiển thị
		/// </summary>
		private void tsbtnCapNhapLoiTB_Click(object sender, EventArgs e)
		{
            if (dgvDSLoiTB.SelectedRows.Count > 0)
            {
                var maloi = dgvDSLoiTB.SelectedRows[0].Cells[0].Value;
                FrmCapNhatLTB ltb = new FrmCapNhatLTB(QLTBLoiThietBi.FindByID(int.Parse(maloi.ToString())));
                if (ltb.ShowDialog() == DialogResult.OK)
                {
                    LoadData();
                    Generic.SelectDataGridviewRowTheoMa(dgvDSLoiTB, "MaLoiTB", ltb.tbltb.MaLoiTB);
                }
            }
		}

		private void FrmQuanLiThongBaoLoiThietBi_Load(object sender, EventArgs e)
		{
            LoadData();
            LoadPhanQuyen();
		}

		private void dgvDSLoiTB_CellClick(object sender, DataGridViewCellEventArgs e)
		{
			var ltb = dgvDSLoiTB.SelectedRows[0].Cells[3].Value.ToString();
		}
		private void textBox1_TextChanged(object sender, EventArgs e)
		{
			QLTBLoiThietBi.DKTimKiem dk = (QLTBLoiThietBi.DKTimKiem)cbbLoaiTK.SelectedIndex;
			QLTBLoiThietBi.TimKiem(dk, dgvDSLoiTB, txtDKTK.Text);
		}

		private void dgvDSLoiTB_MouseDown(object sender, MouseEventArgs e)
		{
			if (e.Button == MouseButtons.Right)
			{
				var a = dgvDSLoiTB.HitTest(e.X, e.Y);
				dgvDSLoiTB.ClearSelection();
				dgvDSLoiTB.Rows[a.RowIndex].Selected = true;
				var ltb = dgvDSLoiTB.SelectedRows[0].Cells[3].Value.ToString();
			}
		}

        private void toolStripButtonPrint_Click(object sender, EventArgs e)
        {
            FrmInAn inan = new FrmInAn(DKForm.TBLoiTB);
            inan.ShowDialog();
        }
        void LoadPhanQuyen()
        {
            toolStripButtonPrint.Visible = PhanQuyen.CheckQuyenSuDung(MyAccount.account.MaTK, "InThongBaoLoiTB");
            thêmLỗiMáyTínhToolStripMenuItem.Visible = toolStripButtonThem.Visible = PhanQuyen.CheckQuyenSuDung(MyAccount.account.MaTK, "ThemThongBaoLTB");
            cậpNhậtLỗiMáyTínhToolStripMenuItem.Visible = toolStripButtonSua.Visible = PhanQuyen.CheckQuyenSuDung(MyAccount.account.MaTK, "SuaThongBaoLTB");
            xóaLỗiMáyTínhToolStripMenuItem.Visible = toolStripButtonXoa.Visible = PhanQuyen.CheckQuyenSuDung(MyAccount.account.MaTK, "XoaThongBaoLTB");
        }
	}
}
